package com.zhuhjay.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author ZhuHJay
 * @date 2023/2/3 18:45
 */
@Data
@Component
@ConfigurationProperties(prefix = "system")
public class SystemConfig {
    /** 文件上传路径 */
    private String profile;

    public static final String AVATAR_DIR = "/avatar";
    public static final String UPLOAD_DIR = "/upload";

    /** TODO：如果用户没有配置则使用默认的路径，但是有以下问题
            - 如果将来使用 jar 运行，那么该如何获取到 jar 包所在的路径
    public String getProfile() {
        // 如果不为空，直接返回
        if (profile != null) {
            return profile;
        }
        // 在类路径下创建目录
        String profilePath;
        URL url = ClassLoaderUtil.getClassLoader().getResource("profile");
        if (url == null) {
            String classPath = Objects.requireNonNull(ClassLoaderUtil.getClassLoader().getResource("")).getPath();
            profilePath = classPath + "profile";
            // 创建 /profile 目录
            FileUtil.mkdir(profilePath);
        } else {
            profilePath = url.getPath();
        }
        return this.profile = profilePath;
    }**/

    public String getAvatarPath() {
        return getProfile() + AVATAR_DIR;
    }

    public String getUploadPath() {
        return getProfile() + UPLOAD_DIR;
    }
}
